<?php
/**
 * Controller de Grupos.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */

/**
 * Clase GruposController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class GruposController extends AppController
{
	var $name = 'Grupos';

/**
 * Index.
 *
 */
    function index() {
		if(!empty($this->data)) {
			$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
			$this->paginate['conditions'] = $condicion;
		}
		$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(null, null, null, null, "{n}.Dominio.valor"));	
		$this->set('registros', $this->paginate());
    }


/**
 * View.
 * Muestra los datos del registro
 *
 */
   function view($id = false) {
        if ($id && is_numeric($id)) {
            $this->data = $this->Grupo->read(null, $id);
        }    
   }  


/**
 * Usuarios.
 * Muestra los usuarios que pertenecen al grupo via ajax
 *
 */
   function usuario($id = false) {
        if ($id && is_numeric($id)) {
			$this->Grupo->recursive = 2;
            $this->data = $this->Grupo->read(null, $id);
        }    
		$this->render("usuario", "ajax");
   }  


/**
 * Add.
 * Agrega un nuevo registro
 *
 */
   function add() {
		if(!empty($this->data) && isset($this->data['Grupo']['accion']) && ($this->data['Grupo']['accion'] == "grabar" || $this->data['Grupo']['accion'] == "cancelar")) {
			if ($this->data['Grupo']['accion'] == "grabar") {
				if($this->Grupo->create($this->data) && $this->Grupo->validates()) {
					if($this->Grupo->save($this->data))
						$this->Session->setFlash('El grupo se agrego correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible agregar el nuevo grupo.', 'error');	

					$this->redirect("index", null, true);
				}
				else {
					$this->__seteos();
					//$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));	
				}
			}
			elseif ($this->data['Grupo']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->__seteos();
			//$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));	
		}
   }    


/**
 * Edit.
 *
 */
   function edit($id) {
		if(!empty($this->data) && isset($this->data['Grupo']['accion']) && ($this->data['Grupo']['accion'] == "grabar" || $this->data['Grupo']['accion'] == "cancelar")) {
			if ($this->data['Grupo']['accion'] == "grabar") {
				if($this->Grupo->create($this->data) && $this->Grupo->validates()) {
					if($this->Grupo->save($this->data))
						$this->Session->setFlash('El grupo se actualizo correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible actualizar el grupo.', 'error');	

					$this->redirect("index", null, true);
				}
				else {
					$this->__seteos();
					//$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));	
					$this->render('add');
				}
			}
			elseif ($this->data['Grupo']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->data = $this->Grupo->read(null, $id);
			$this->__seteos();
			//$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(array("nombre"=>"estados_seguridad"), null, null, null, "{n}.Dominio.valor"));	
			$this->render('add');
		}
   }    


/**
 * Realiza los seteos para las acciones comunes a las altas y las modificaciones.
 *
 */
	function __seteos() {
		$this->set('estados_seguridad', $this->Grupo->EstadoSeguridad->generateList(null, null, null, null, "{n}.Dominio.valor"));	
	}

}
?>